'''
# encoding=utf-8

'''
import warnings

warnings.filterwarnings('ignore')
#显示中文
from pylab import *  #显示中文

mpl.rcParams['font.sans-serif'] = ['SimHei']  #显示中文
#画图中显示负号
import matplotlib

matplotlib.rcParams['axes.unicode_minus'] = False

import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.naive_bayes import GaussianNB,MultinomialNB,BernoulliNB
from sklearn.metrics import classification_report,roc_curve,roc_auc_score



# 针对多项式朴素贝叶斯进行分析
# 1.	数据读取
# a)	读取bayes_lihang.txt信息	（10分）
df = pd.read_csv('bayes_lihang.txt')
# b)	将前两列作为x，最后一列作为y（10分）
X, y = df[df.columns[:-1]], df[df.columns[-1]]; print(X,y)
# 2.	数据预处理
# a)	将第二个特征进行标签化处理（10分）
le = LabelEncoder()
X.iloc[:, 1] = le.fit_transform(X.iloc[:,1])
print(X)
# 3.	模型处理
# a)	调用多项式朴素贝叶斯（10分）
mnb = MultinomialNB()
# b)	拟合数据，并预测结果（10分）
mnb.fit(X, y)
y_pred = mnb.predict(X)
# c)	打印每个数据的预测概率（10分）
y_prob = mnb.predict_proba(X)
print(y_prob)
# 4.	模型评测
# a)	打印模型准确率（10分）
print(mnb.score(X, y))
# b)	打印模型分类报告（10分）
print(classification_report(y, y_pred))
# c)	打印roc曲线（10分）
fpr, tpr, th = roc_curve(y, y_prob[:, 1])
plt.plot(fpr, tpr)
plt.show()
# d)	打印auc数值（10分）
print(roc_auc_score(y, y_prob[:, 1]))

